package utils

import (
	"fmt"
	"math/rand"
	"time"
)

func OrderNum() string {
	// 生成基于时间的前缀
	now := time.Now()
	timePrefix := now.Format("20060102150405") // 使用年月日时分秒格式

	// 初始化随机数生成器
	rand.Seed(time.Now().UnixNano())

	// 第一次生成随机数
	firstRandom := rand.Intn(100000) // 生成0到99999之间的随机数

	// 使用第一次随机数的结果作为新的种子来再次初始化随机数生成器
	rand.Seed(int64(firstRandom))
	secondRandom := rand.Intn(100000) // 再次生成0到99999之间的随机数

	// 生成完整的订单号，确保随机后缀始终是5位数
	orderNumber := fmt.Sprintf("%s%05d%05d", timePrefix, firstRandom, secondRandom)

	return orderNumber
}
